//package com.niit.user_profile_center.controller;
//
//import com.niit.user_profile_center.entity.User;
//import com.niit.user_profile_center.service.FollowService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.http.ResponseEntity;
//import org.springframework.http.HttpStatus;
//
//import java.util.ArrayList;
//import java.util.List;
//
//@CrossOrigin(origins = "http://localhost:8080")
//@RestController
//@RequestMapping("api/user")
//public class FollowController {
//    @Autowired
//    private FollowService followService;
//    private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(FollowController.class);
//
//
//    /**
//     * 用户关注操作
//     * @param followerId 关注者ID
//     * @param followingId 被关注者ID
//     * @return 操作结果：1表示成功，0表示失败
//     */
//    @GetMapping("/follow")
//    public ResponseEntity<?> follow(@RequestParam Long followerId, @RequestParam Long followingId) {
//        // 添加参数验证
//        if (followerId == null || followingId == null) {
//            return ResponseEntity.badRequest().body("用户ID不能为空");
//        }
//        if (followerId.equals(followingId)) {
//            return ResponseEntity.badRequest().body("不能关注自己");
//        }
//
//        try {
//            int result = followService.follow(followerId, followingId);
//            if (result == -1) {
//                return ResponseEntity.status(HttpStatus.CONFLICT).body("已关注，无需重复操作");
//            }
//            return ResponseEntity.ok(result);
//        } catch (Exception e) {
//            e.printStackTrace();
//            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("关注失败：" + e.getMessage());
//        }
//    }
//
//    /**
//     * 取消关注操作
//     * @param followerId 关注者ID
//     * @param followingId 被关注者ID
//     * @return 操作结果：1表示成功，0表示失败
//     */
//    @GetMapping("/unfollow")
//    public ResponseEntity<?> unfollow(@RequestParam Long followerId, @RequestParam Long followingId) {
//        try {
//            int result = followService.unfollow(followerId, followingId);
//            return ResponseEntity.ok(result);
//        } catch (Exception e) {
//            e.printStackTrace();
//            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("取消关注失败：" + e.getMessage());
//        }
//    }
//
//    /**
//     * 检查用户关注状态
//     * @param followerId 关注者ID
//     * @param followingId 被关注者ID
//     * @return 关注状态：true表示已关注，false表示未关注
//     */
//    @GetMapping("/check")
//    public Boolean checkFollowStatus(@RequestParam Long followerId, @RequestParam Long followingId) {
//        return followService.checkFollowStatus(followerId, followingId);
//    }
//
//
//    /**
//     * 获取用户关注列表（支持分页）
//     * @param id 用户ID
//     * @param page 页码（从0开始）
//     * @param size 每页大小
//     * @return 关注用户列表
//     */
//    @GetMapping("/{id}/following")
//    public ResponseEntity<List<User>> getFollowingUsers(
//            @PathVariable("id") Long id,
//            @RequestParam(defaultValue = "0") int page,
//            @RequestParam(defaultValue = "10") int size) {
//        try {
//            List<User> followingUsers = followService.getFollowingUsers(id);
//            //  simple pagination implementation
//            int fromIndex = page * size;
//            int toIndex = Math.min((page + 1) * size, followingUsers.size());
//            if (fromIndex > followingUsers.size()) {
//                return ResponseEntity.ok(new ArrayList<>());
//            }
//            return ResponseEntity.ok(followingUsers.subList(fromIndex, toIndex));
//        } catch (Exception e) {
//            e.printStackTrace();
//            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new ArrayList<>());
//        }
//    }
//
//    /**
//     * 获取用户粉丝列表（支持分页）
//     * @param id 用户ID
//     * @param page 页码（从0开始）
//     * @param size 每页大小
//     * @return 粉丝用户列表
//     */
//    @GetMapping("/{id}/followers")
//    public ResponseEntity<List<User>> getFollowers(
//            @PathVariable("id") Long id,
//            @RequestParam(defaultValue = "0") int page,
//            @RequestParam(defaultValue = "10") int size) {
//        try {
//            List<User> followers = followService.getFollowers(id);
//            // 简单分页实现
//            int fromIndex = page * size;
//            int toIndex = Math.min((page + 1) * size, followers.size());
//            if (fromIndex > followers.size()) {
//                return ResponseEntity.ok(new ArrayList<>());
//            }
//            return ResponseEntity.ok(followers.subList(fromIndex, toIndex));
//        } catch (Exception e) {
//            e.printStackTrace();
//            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new ArrayList<>());
//        }
//    }
//
//    /**
//     * 获取用户粉丝数
//     * @param id 用户ID
//     * @return 粉丝数
//     */
//    @GetMapping("/{id}/followers/count")
//
//    public ResponseEntity<Integer> getFollowersCount(@PathVariable("id") Long id) {
//        try {
//            System.out.println("收到获取粉丝数请求: UserID=" + id);
//            if (id == null) {
//                System.out.println("用户ID为空");
//                return ResponseEntity.badRequest().body(0);
//            }
//            int count = followService.getFollowers(id).size();
//            // 打印关注数信息
//            System.out.println("获取用户关注数: UserID=" + id + ", 关注数=" + count);
//
//            return ResponseEntity.ok(count);
//        } catch (Exception e) {
//            System.err.println("获取粉丝数异常: UserID=" + id + ", 异常信息: " + e.getMessage());
//            logger.error("获取粉丝数异常", e);
//            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(0);
//        }
//    }
//
//    /**
//     * 获取用户关注数
//     * @param id 用户ID
//     * @return 关注数
//     */
//    @GetMapping("/{id}/following/count")
//    public ResponseEntity<Integer> getFollowingCount(@PathVariable("id") Long id) {
//        try {
//            if (id == null) {
//                return ResponseEntity.badRequest().body(0);
//            }
//            int count = followService.getFollowingUsers(id).size();
//            // 打印粉丝数信息
//            System.out.println("获取用户粉丝数: UserID=" + id + ", 粉丝数=" + count);
//
//            return ResponseEntity.ok(count);
//        } catch (Exception e) {
//            logger.error("获取关注数异常", e);
//            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(0);
//        }
//    }
//
//    // 查询是否为好友
//    @GetMapping("/isFriend")
//    public ResponseEntity<Boolean> isFriend(@RequestParam Long userId, @RequestParam Long otherId) {
//        boolean isFriend = followService.isFriend(userId, otherId);
//        return ResponseEntity.ok(isFriend);
//    }
//
//}